home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / et / et3_0-a1.lha / et3 / src / Date.h < prev    next >
C/C++ Source or Header  |  1992-04-27  |  1KB  |  61 lines

  1. #ifndef Date_First
  2. #ifdef __GNUG__
  3. //pragma once
  4. #pragma interface
  5. #endif
  6. #define Date_First
  7.  
  8. #include "Types.h"
  9. #include "Stream.h"
  10.  
  11. //---- Date --------------------------------------------------------------------
  12.  
  13. class Date {
  14. public:
  15.     Date();                 
  16.     Date(long sec, long msec= 0);
  17.  
  18.     //----- access/conversion              
  19.     long Sec()
  20.     { return sec; };
  21.     long MSec()
  22.     { return msec; };
  23.     char *AsString();
  24.     
  25.     //----- operators                          
  26.     Date operator+(Date &d);
  27.     Date operator-(Date &d);
  28.     Date operator*(int i);
  29.     Date operator*(double f);
  30.     
  31.     //----- comparison  
  32.     int Compare(Date &d);
  33.     
  34.     //---- syntactic sugar: relational operators
  35.     bool operator== (Date &d)
  36.     { return Compare(d) == 0; };
  37.     bool operator< (Date &d)
  38.     { return Compare(d) < 0; };
  39.     bool operator<= (Date &d)
  40.     { return Compare(d) <= 0; };
  41.     bool operator>  (Date &d)
  42.     { return Compare(d) > 0; };
  43.     bool operator>= (Date &d)
  44.     { return Compare(d) >= 0; };
  45.     
  46.     //---- Stream operators
  47.     friend OStream &operator<< (OStream &os, Date &d);
  48.     friend IStream &operator>> (IStream &is, Date &d);   
  49.  
  50. private:
  51.     void Normalize();    
  52.  
  53.     long sec, msec;
  54. };
  55.  
  56. SimpleMetaDef(Date);
  57.  
  58. //------------------------------------------------------------------------------
  59.  
  60. #endif Date_First
  61.